<?php
/**
 * @version		1.0: controller.php marum56
 * @package		Joomla
 * @subpackage		Pojazdy
 */

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport('joomla.application.component.controller');

/**
 * Pojazdy Component Controller
 *
 * @package		Joomla
 * @subpackage		Pojazdy
 * @since 1.0
 */
class PojazdyController extends JController
{
	/**
	 * Constructor
	 *
	 * @params	array	Controller configuration array
	 */
	function __construct($config = array())
	{
		parent::__construct($config);

		// Register Extra tasks
		$this->registerTask( 'add', 'display'  );
		$this->registerTask( 'edit', 'display'  );
	}

	/**
	 * Displays a view
	 */
	function display( )
	{
		switch($this->getTask())
		{
			case 'add'     :
			{	JRequest::setVar( 'hidemainmenu', 1 );
				JRequest::setVar( 'layout', 'form'  );
				JRequest::setVar( 'view', 'pojazd' );
				JRequest::setVar( 'edit', false );
			} break;
			case 'edit'    :
			{
				JRequest::setVar( 'hidemainmenu', 1 );
				JRequest::setVar( 'layout', 'form'  );
				JRequest::setVar( 'view', 'pojazd' );
				JRequest::setVar( 'edit', true );
			} break;
			default	       :
			{
				JRequest::setVar( 'layout', 'default'  );
				JRequest::setVar( 'view', 'pojazdy' );
			}
		}

		parent::display();
	}

	/**
	 * Saves the record
	 */
	function save()
	{
		global $mainframe;

		// Check for request forgeries
		JRequest::checkToken() or jexit( 'Invalid Token' );

 		// Tworzy nowy pusty obiekt
		$ob =& msPojazd::getInstance();  // Przy przeniesieniu kodu zmieniamy tylko tą klasę np. msPojazdy::getInstance();

		// Pobranie calej tablicy $_POST
		$post = JRequest::get('post');

		/*
		 * Zbindowanie formularza na obiekt
		 */
		if (!$ob->bind($post))
		{
			$mainframe->enqueueMessage('Nie można zapisać informacji o pojeździe.', 'message');
			$mainframe->enqueueMessage($ob->getError(), 'error');
			return $this->execute('edit');
		}

		/*
	 	 * Lets save the object to the database
	 	 */
		if (!$ob->save())
		{
			$mainframe->enqueueMessage('Nie można zapisać informacji o pojeździe.', 'message');
			$mainframe->enqueueMessage($ob->getError(), 'error');
			return $this->execute('edit');
		}
		
		$msg = JText::sprintf( 'Pomyślnie zapisano pojazd "%s"', $ob->get('nrr') );
		$this->setRedirect( 'index.php?option=com_pojazdy', $msg );
	}
	
	
	/**
	 * Removes the record(s) from the database
	 */
	function remove()
	{
		// Check for request forgeries
		JRequest::checkToken() or jexit( 'Invalid Token' );

		$db 	=& JFactory::getDBO();
		// Otrzymane nr $gid do usunięcia
		$cgid 	= JRequest::getVar( 'cid', array(), '', 'array' );

		JArrayHelper::toInteger( $cgid );

		if (count( $cgid ) < 1) {
			JError::raiseError(500, JText::_( 'Select a User to delete', true ) );
		}

		foreach ($cgid as $gid)
		{			
			$ob =& msPojazd::getInstance((int)$gid);	// Przy przeniesieniu kodu zmieniamy tylko tą klasę np. msPojazdy($gid);
			
			// Usuń
			if ($ob->delete()) {
				$msg = 'Zadanie usunięcia przebiegło pomyślnie.';
			} else {
				global $mainframe;
				$mainframe->enqueueMessage('Nie można usunąć wyszczególnionych wierszy.', 'error');
				$mainframe->enqueueMessage($ob->getError(), 'error');
			}
			
			JRequest::setVar( 'task', 'remove' );
			JRequest::setVar( 'cid', $gid );
		}

		$this->setRedirect( 'index.php?option=com_pojazdy', $msg);
	}


	/**
	 * Cancels an edit operation
	 */
	function cancel( )
	{
		$this->setRedirect( 'index.php?option=com_pojazdy' );
	}
}
